const go/types.exact
13 uses
go/types (current package)
infer.go#L305: if !check.hasAllMethods(tx, constraint, true, func(x, y Type) bool { return u.unify(x, y, exact) }, &cause) {
unify.go#L124: exact
unify.go#L133: case exact:
unify.go#L135: case assign | exact:
unify.go#L343: if ny := asNamed(y); mode&exact == 0 && ny != nil && isTypeLit(x) && !(u.enableInterfaceInference && IsInterface(x)) {
unify.go#L429: if mode&exact == 0 {
unify.go#L461: if u.enableInterfaceInference && mode&exact == 0 {
unify.go#L524: if ym := ymap[xm.Id()]; ym == nil || !u.nify(xm.typ, ym.typ, exact, p) {
unify.go#L552: if ym.Signature().TypeParams() != nil || !u.nify(xm.typ, ym.typ, exact, p) {
unify.go#L582: emode |= exact
unify.go#L669: assert(!u.enableInterfaceInference || mode&exact != 0) // handled before this switch
unify.go#L722: if f.Id() != g.Id() || !u.nify(f.typ, g.typ, exact, q) {
unify.go#L741: return (mode&exact == 0 || x.dir == y.dir) && u.nify(x.elem, y.elem, emode, p)